package com.zhn;

/**
 * 给定一个大小为 n 的数组 nums ，返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
 *
 * 你可以假设数组是非空的，并且给定的数组总是存在多数元素。
 */
public class MajorityElement {
    //投票法
    //不同投票减一，相同投票+1
    public int majorityElement(int[] nums) {
        //第一个
        int num = nums[0];
        //默认一票
        int count = 1;
        for(int i = 1;i < nums.length; i++){
            //一个阵营，投票+1
            if(nums[i] == num){
                count++;
            }
            else {
                //不同阵营，投票-1
                count--;
                //票数为0更换选手
                //默认一票开始
                if(count == 0){
                    num = nums[i];
                    count = 1;
                }
            }
        }
        return num;
    }
}
